vlwkaos' digital garden
북 리뷰 - TDD Test Driven Development
개요
켄트 백 '테스트 주도 개발' 책을 통해 테스트 주도 개발에 대해 알아본다.
요약 및 느낀점
1
TDD 특징
TDD도 결국 개발 방법론 중 하나. 상황에 맞게 활용할 수 있으면 된다.
테스트 작성의 실패는 컴파일 에러부터 시작
개발 중 막히는 부분을 더 쪼개서 만들어나갈 수 있다는 사실을 아는 것만으로도 큰 도구가 된다
TDD 장점
자기가 만든것을 보호하기 위한 포장
어찌됐든 테스트 코드 작성은 있으면 좋다
기능을 쪼개고 단위 테스트를 작성함으로써 오는 결과물에 대한 보장.
두려움을 없애준다
TDD 단점
기술적으로 테스트 작성 자체가 어려운 경우, 테스트 작성시간이 길어지면 단점
머릿속에 그리고 있는 것은 한번에 구현 가능하다면 작은 단위의 테스트 작성은 스킵할 수 있다.
🤔
TDD시 작업 및 커밋 단위는 어떻게 가져가는게 좋은가?
2
목적은 작동하는 깔끔한 코드를 얻는 것
작동하는 코드를 먼저 작성한다
리팩토링으로 정리한다
value object pattern 값 객체 패턴. 객체 값을 immutable하게 이용하기
value object pattern 테스트하는 방법
삼각 측량: 두번째 테스트를 제공 -> 일반화
예: 값 객체, 다른 값 객체를 모두 테스트한다.
결국 테스트와 코드는 서로가 서로의 테스트케이스로 점진적으로 개발을 진척하게 한다.
처음부터 완성된 코드도 없고 테스트도 없다
추상화 이전에 중복코드 작성, 테스트 추가 상위 개념 도출
하위 클래스 역할 모호 -> 없애기 위해 팩토리 -> 테스트 수정 필요
기억하자. TDD는 구현이 어려울 때 더 적은 단위로 작업할 수 있다는 사실을 알려주는 도구일 뿐이다.
무조건적으로 신봉할 필요가 없다.
실패없이 리팩토링하는 방법이라고 보는 편이 더 유사한것 같음
테스트는 작성하고 끝나는게 아니라 개발과정에 맞춰서 계속 변하는 것
검증의 역할보다 말 그대로 테스트 주도 개발이 이뤄지게하는 역할이 더 큼
3
Referred in
개발
북 리뷰 - TDD Test Driven Development